<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    .father {
      width: 400px;
      height: 400px;
      background-color: pink;
      /* border-top: 1px solid #000; */
      /* padding-top: 1px; */

      /* overflow: hidden; */

      /* display: inline-block; */

      float: left;
    }
    .son {
      width: 100px;
      height: 100px;
      background-color: blue;
      /* 出现塌陷现象，父元素跟着子元素一起向下移动了100px */
      /* 原因是：子元素的margin-top和父元素的margin-top紧贴在一起了，从而导致了margin-top的合并现象 */
      /* 解决办法是：将父子元素的margin-top分隔就好了 */
      /* 1、给父元素设置border-top或padding-top或给父元素加上一行文本 */
      /* 2、给父元素设置overflow：hidden */
      /* 3、转换成行内块元素 */
      /* 4、设置浮动 */
      /* 5、后面会讲到一种清除浮动方法中的双伪元素清除法也可解决塌陷现象 */
      margin-top: 100px;
    }
  </style>
</head>
<body>
  <!-- 互相嵌套的块级元素，父子元素紧贴的margin-top会合并作用在父元素上 -->
  <!-- 这样会导致父元素一起往下移动 -->
  <div class="father">
    <!-- 我是一行让父元素和子元素margin-top隔开的文本 -->
    <div class="son"></div>
  </div>
</body>
</html>